查看原文
其他

秋招“笔试经”第五弹:华为硬件逻辑岗和硬件通用岗

相量子&坐标轴 达尔闻说 2021-01-17

不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我!

在达尔闻“笔试经”解析之后,有同学已经完成了海康、CVTE等公司的笔试、面试,并取得不错的成绩。本期秋招解析仍然继续为大家带来华为硬件逻辑岗和硬件通用岗的讲解。

备注:目前笔试经固定在每周二更新,最近阶段集中为大家解析华为的各种题目,如果大家有其他需求,可以进入秋招求职群,添加妮姐微信:459888529,注明:秋招

今天的解析仍然分为两大部分,相量子老师继续解析华为硬件逻辑岗的题目并做知识扩展,坐标轴老师继续带来硬件通用岗的题目解析。以下这些题同样适用于其他公司相关岗位的笔试。
PART1:华为硬件逻辑岗

今天让我们来看一下上次文末留下题目的解析(查看第四弹解析),并在本文的文末再送上两道题目。

8、组合逻辑电路消除竞争冒险的方法有(   )。(华为硬件逻辑实习岗)

A 在输出端接入滤波电容          

B 后级加缓冲电路       

C 屏蔽输入信号的尖峰干扰       

D 前级加电阻

解析:考察数字电路中对组合逻辑电路中竞争冒险的认识

如下图所示,在组合逻辑电路中我们将门电路两个输入信号同时向相反的逻辑电平跳变(一个从1变为0,另一个从0变为1)的现象称为竞争。由于竞争而在电路输出端可能产生尖峰脉冲的现象就称为竞争-冒险。通俗的理解就是组合逻辑电路中会在两个输入变化的地方产生干扰即毛刺,电路中的毛刺是我们不希望产生的,会使我们设计的电路产生不稳定因素,非常危险。

接下来我们还要知道如何分析一个电路中是否存在竞争-冒险现象。在输入变量每次只有一个改变状态的简单情况下,可以通过逻辑函数式判断组合逻辑是否存在竞争-冒险现象。如果输出端电路的两个输入信号A和A’是输入变量A经过两个不同的传输途径而来的,那么的那个输入变量A的状态发生突变时输出端便有可能产生尖峰脉冲。因此,只要输出端的逻辑函数在一定条件下化简成Y = A+ A' 或Y = A* A' 则可判定存在竞争-冒险现象。

那么如何消除竞争-冒险现象呢?其主要的方法有如下三种:

1)输出端接入滤波电容

下面的电路中D = AB + A'C,当B = C = 1时,D = A + A' 所以输出会产生竞争-冒险现象。

2)引入选通脉冲或使用时序逻辑电路

3)修改逻辑设计,增加冗余项

我们从从布尔方程式的角度进行逻辑优化,将原逻辑表达式D = AB + A'C,添加冗余逻辑后变为D = AB + A'C + BC,这样当B = C = 1时就不会产生竞争-冒险现象。

由上面的分析知后级增加缓冲器并不会滤除竞争-冒险产生的毛刺,所以B项错误。由于逻辑门的延迟作用,竞争冒-险现象主要由两个输入信号同时向相反的逻辑电平跳变所生的,而不是由输入信号的尖峰干扰所导致的,所以屏蔽输入信号的尖峰干扰和前级加电阻并不可以消除经过组合逻辑后输出的毛刺,所以C项和D项也错误。  

综上所述,本题答案选A 在输出端接入滤波电容

9、关于2019:1的MUX,下列描述哪个正确(   )。(华为硬件逻辑实习岗)

A 输出为1路      

B 选择字为2019位

C 输入为2048路

D 以上皆对

解析:考察数字电路中对基本时序逻辑电路的认识

首先刚看到这个题目时可能会让人眼前一懵,2019:1到底是个啥呢?但当我们看到MUX就知道这一定是个多路选择器,而最常见的多路选择器就是2选1多路选择器,其有两个输入数据通道分别为in1和in2,通过一个选通控制信号sel(也称为选择字,相当于地址线的作用)确定选通in1路输出还是 in2路输出。当选通控制信号sel为1时,输出为in1路信号的数据;当选通控制信号sel为0时,输出为in2路信号的数据。其框图、真值表和波形图如下:

我们常常用MUX 2:1(“:”左边的数表示输入数据通道的个数,右边的数表示输出数据通道的个数)来简便的表示2选1多路选择器。所以题目中的MUX 2019:1表示的是2019选1多路选择器,即有2019路数据输入通道,通过sel选通信号从2019路输入中选通一路输出。所以A项是正确的,,而C项刚好错误,因为只有一路输出。而B项,我们需要多少位的sel信号呢?我们可以对输入的2019路数据通道进行二进制地址编码,这样子能够最少的占用资源,2048 > 2019 > 1024 ,也就最少需要11位的地址线即可,如果使用独热码编码,每个比特只有一位为1在输入通道较少的情况也是可以的,但是2019个输入通道确实太多了,无论是做成ASIC还是编写Verilog代码来实现都是不切实际的。B项目虽然不能说是错误的,但由于这是个单选题,所以综上所述,本题的最佳答案选A 输出为1路。

下面我们对相关知识进行扩展,在Quartus中用三种不同Verilog代码描述方式来实现2选1多路选择器,注意发现其各自的特点。

(1)always中if-else实现方法

//---------------------------------
01module   mux2_1(        
02 input   wire    in1,    //输入端1
03 input   wire    in2,    //输入端2
04 input   wire    sel,    //选择端
05     
06 output  reg     out    //结果输出
07);                     
08
09//out:组合逻辑输出sel选择的结果
10always@(*)           
11  if(sel ==1'b1) 
12      out= in1; 
13  else
14      out = in2;
15
16endmodule            
//---------------------------------
根据上面RTL代码综合出的RTL视图如下所示:

(2)always中case实现方法

//---------------------------------
01module   mux2_1(
02 input   wire    in1,    //输入端1
03 input   wire    in2,    //输入端2
04 input   wire    sel,    //选择端
05       
06 output  reg     out     //结果输出
07);
08
09//out:组合逻辑输出选择结果
10always@(*)
11 case(sel)
12      1'b1: out = in1;
13     
14      1'b0: out = in2;
15     
16      default: out = in1;
17 endcase
18
19endmodule
//---------------------------------

根据上面RTL代码综合出的RTL视图如下所示:

(3)assign中三目运算符实现方法

//---------------------------------
01module   mux2_1(
02 input   wire    in1,    //输入端1
03 input   wire    in2,    //输入端2
04 input   wire    sel,    //选择端
05     
06 output  wire    out     //结果输出
07);
08
09//out:组合逻辑输出选择结果
10assignout =(sel ==1'b1)? in1 : in2;   
11
12endmodule
//---------------------------------

据上面RTL代码综合出的RTL视图如下所示:

通过对比发现以上三种不同代码方式实现的2选1多路选择器对应综合出的RTL视图虽有所差别,但综合工具在布局布线和最后映射到FPGA的资源上时会自动进行优化,使最终的功能和占用的逻辑资源都是相同的。

PART2:华为硬件通用岗

首先我们来讲一讲上周遗留的问题(查看上期第11和第12遗留问题),第一个是对于100MHz示波器采样100MHz正弦波的问题,我们上次分析了由于示波器带宽值得是信号3dB衰减时对应的带宽,所以在100MHz时信号已经有了3dB的衰减,也就是原始信号除以1.41。那么原始信号应该是多少呢?是3.3V吗?
由于100MHz带宽的限制,方波信号只保留了基波信号,而方波的基波信号幅值可以根据傅里叶级数展开式得到,为2Vs/pi,约为2.1V。那么实际应该看到一个100MHz,1.49左右的正弦波。
第二个,我们说一下对于输入阻抗和输出阻抗的理解

如上图所示,左侧是输出部分A,右侧是输入部分B,R1即为A模块的输出阻抗,R2即为B模块的输入阻抗,我们来分析一下输入输出电阻是怎么影响电压信号测量的。
首先,由于R1电阻的存在,从A模块输出的信号不再为原始的信号,它会因为流经R1的电流而造成分压,如流经R1的电流为I,那么R1两端会存在R1*I的压差。比如将A和B如下图所连时,即使IN支路无需电流(几乎为零),R1和R2的存在也会影响A模块的输出信号。而当R1为零时,这个影响将会消除
同样我们从B模块的角度来看一下,R2的存在会在B模块内部形成一条支路,使B模块输入端口的电流变大,那么就会造成R1两端的压降更大;而当R2断开(也就是R2电阻无穷大)时,这条支路就不存在了
所以说我们一般希望信号源的输出阻抗(也就是内阻)尽量小,防止由于接在其他输入模块时,信号失真。
而示波器的表笔,我们希望它在测量时尽量不要影响原始电路的工作,所以我们一般希望示波器的输入阻抗越大越好,这样从被测电路中获取的电流就很小,对被测电路的影响也就较小。
继续今天通用硬件岗的题目解析:

13、已知信号f(t)的最高频率为x(Hz),则对信号f(t/2)取样时,其频谱不混迭的最大奈奎斯特取样间:

1/2x         1/x

2/x           4/x
解析:1/x
考察奈奎斯特采样定理,采样频率至少为信号频率的两倍,也就是每个周期至少采样两个点。本题中f(t/2)的最高频率应该为x/2(Hz),周期为2/x,那么采集间隔应该是周期的一半,也就是1/x。

14、芯片厂商提供的手册都比较保守,只要保证系统能正常工作,测试到的信号质量,时序刚好超出要求也没关系。

错误     正确

解析:错误
首先芯片的制作是存在偏差的,而厂商芯片手册中的数据是统计量,通过大量芯片测试后得到的数据,如果仅仅保证当前芯片能正常工作,在批量生产时就可能由于个别芯片与手册极限参数接近造成产品问题。
另外,高低温对于芯片同样存在不小的影响,仅仅在室温或者实验室情况下测量是正常工作的,在实际产品使用时也有可能出现问题,所有在实际使用时,不要超出芯片手册中的要求。
15、想要去除信号的50Hz 干扰,可以选择哪种滤波器:

高通滤波器     低通滤波器

带通滤波器     带租滤波器

解析:带阻滤波器
滤除某种特定频率的信号,可以使用带阻滤波器,如果你只关注低频的特性,可以使用低通滤波器,如果你只关心50Hz以上的高频信号,也可以使用高通滤波器。仅从题目要求来看,最合适的答案是使用带阻滤波器。
16、采用线性电源从3.3V降到1.5V,如果1.5V的实测电流为0.5A;用于该部分的3.3V的实测电流可能为:
0.28A        0.4A
0.5A          0.23A
解析:0.5A
考查电源知识,在这里你可以把线性电源可以理解为一个滑动变阻器,通过电阻消耗多余的能量,由于是串联的,所以输入输出电流保持不变。
扩展一下开关电源,开关电源的开关器件工作的导通和关断的状态,需要使用储能元件,可以理解为一个水库,下游不需要水的时候,水存储在水库中,水闸关闭。下游需要水的时候水闸打开,将水供给下游。而线性电源,更像是下游不需要水的时候,把多余的水倒掉。所以在压差较大的场合(上游水源及其充足、下游只需要很少),一般开关电源的效率更高,同时开关电源的输入和输出电流可以不一样。
17、为了减少相互间的串扰,可以将线间距加大。
正确      错误
解析:正确
相互之间的串扰主要是由于电生磁,磁场重新耦合到另一条传输线的过程,将两条线之间的线距增大,受到串扰影响的传输线周围的磁感线密度变小,受到的影响也就小了。

18、引起组合逻辑电路发生竞争冒险的原因是:

信号串扰          电路延时
逻辑关系错误    电源波动
解析:电路延时
由于到达门的时间不同,会造成竞争冒险。
19、计算机内的“溢出“是指其运算的结果()。
为无穷大
超出了计算机内存储单元所能存储的数值范围
超出了该指令所指定的结果单元所能存储的数值范围
解析:超出了该指令所指定的结果单元所能存储的数值范围。
20、下面哪个电路属于时序逻辑电路:
与非门         寄存器
编码器         多路选择器
解析:寄存器
寄存器是由触发器组成的,所以是时序逻辑。
最后,留下课后作业:下一期我们将对下面的题目进行详细的扩展解析,大家可以提前做一下,同时我们还会解析CVTE的笔试题,敬请期待……

10、寄存器的Tsu(建立时间)是如何定义的(  )。(华为硬件逻辑实习岗)

A 在时钟沿到来之后数据保持稳定的时间      

B 在时钟沿带来前后数据都需要保持稳定的时间          

C 在整个时钟周期数据保持稳定的时间   

D 在时钟沿到来之前数据保持稳定的时间 

11、关于同步设计,说法错误的是(   )。(华为硬件逻辑实习岗)

A 在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定    

B 为保证逻辑设计可靠,必须保证整个电路中只有一个时钟域,同时只使用同一个时钟沿

C 同步电路比较容易使用寄存器异步复位/置位端,以使整个电路有一个确定的初始状态

END


目前,我们安排的是每周二更新笔试经系列,计划涵盖的公司包含:华为,京东,大疆,商汤,中兴,CVTE,AMD,海康威视,黑金,汇顶等。(会陆续补充)
关于更新时间:每周二,如果同学们诉求高,很希望看到更多的分享,我们可以加番。
达尔闻 秋招“笔试经”系列:

第一弹:华为硬件逻辑岗

第二弹:海康威视硬件岗

第三弹:华为硬件逻辑岗

第四弹:华为硬件逻辑岗&通用硬件岗

毕业设计开班啦!达尔闻秋季大事件

达尔闻携全球分销商-得捷电子(Digi-key)带来17讲毕设系列线上课程。(点击阅读原文查看课程详情

讲师:毕设导师,名校博士/硕士,资深工程师,知乎大神,B站Up主

课程内容:从选题、基础知识补足,毕设题目拆解教学到毕设案例分享。

时间:2019年9月-2019年12月(每周二&周四)

福利:丰富的毕设资料、项目方案,免费开发板等,立即占座:

方式一,毕业设计-得捷 交流qq群:657307701

方式二,识别下方二维码进微信交流,如群满可添加妮姐微信:459888529


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存